/*
* This file is a part of the open-eBackup project.
* This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
* If a copy of the MPL was not distributed with this file, You can obtain one at
* http://mozilla.org/MPL/2.0/.
*
* Copyright (c) [2024] Huawei Technologies Co.,Ltd.
*
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
* EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
* MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
*/
#include "pluginfx/ExternalPluginManager.h"
#include "servicecenter/services/jobservice/detail/JobServerRpcPublishObserver.h"
#include "servicecenter/services/jobservice/detail/JobServiceFactory.h"
#include "servicecenter/servicefactory/include/ServiceFactory.h"
#include "servicecenter/services/jobservice/detail/JobServer.h"

namespace jobservice {
bool JobServer::Initailize()
{
    RegisterRpcObserver();
    return true;
}

bool JobServer::Uninitailize()
{
    return true;
}

void JobServer::RegisterRpcObserver()
{
    auto observer = JobServiceFactory::GetInstance()->CreateObserver();
    ExternalPluginManager::GetInstance().RegisterObserver(messageservice::EVENT_TYPE::RPC_PUBLISH_TYPE,
        std::dynamic_pointer_cast<messageservice::IObserver>(observer));
}
}